<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns:u="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui" xmlns="http://www.w3.org/1999/xhtml">

<body>
	<u:composition template="/pages/layout/pageLayout.xhtml">
		<u:define name="body">
			<h:form id="form">
				<p:panel id="panelFiltro" header="#{msgs.common_filtros}"
					rendered="#{!facturacionController.addEdit}">
					<h:panelGrid columns="5">
						<h:outputText value="#{msgs.admFacturacion_fecha}" />
						<p:calendar id="fechaC"
							value="#{facturacionController.query.fecha}" mode="popup"
							showOn="button" locale="es"
							pattern="#{msgs.common_inputDateFormat}"
							readOnlyInputText="false" navigator="true" yearRange="c-100:c+50"
							converterMessage="El formato de la fecha es incorrecto">
						</p:calendar>

						<h:outputText value="#{msgs.admFacturacion_cliente}" />
						<p:selectOneMenu value="#{facturacionController.query.clienteID}">
							<f:selectItem itemLabel="Seleccione" itemValue="" />
							<f:selectItems value="#{facturacionController.listaCliente}"
								var="cliente" itemValue="#{cliente.id}"
								itemLabel="#{cliente.nombre}" />
							<f:ajax execute="@this" />
						</p:selectOneMenu>

						<p:commandButton value="Consultar"
							actionListener="#{facturacionController.query}"
							update="dataTable">
						</p:commandButton>
					</h:panelGrid>
				</p:panel>

				<h:outputText value="&#160;" />

				<p:growl id="messages" life="12000" />
				<p:dataTable id="dataTable" var="objeto"
					value="#{facturacionController.lazyDM}" paginator="true" rows="10"
					paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
					rowsPerPageTemplate="10,15,20"
					rendered="#{!facturacionController.addEdit}"
					emptyMessage="No se encontraron registros" dynamic="true"
					lazy="true">

					<f:facet name="header">
						<h:outputText value="#{msgs.admFacturacion_title}" />
					</f:facet>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_fecha}" />
						</f:facet>
						<h:outputText value="#{objeto.fecha}">
							<f:convertDateTime pattern="#{msgs.common_inputDateFormat}"
								timeZone="#{msgs.common_timeZone}" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_cliente}" />
						</f:facet>
						<h:outputText value="#{objeto.cliente.nombre}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_neto}" />
						</f:facet>
						<h:outputText value="#{objeto.neto}">
							<f:convertNumber currencyCode="ARS" type="currency" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_iva}" />
						</f:facet>
						<h:outputText value="#{objeto.iva}">
							<f:convertNumber currencyCode="ARS" type="currency" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_total}" />
						</f:facet>
						<h:outputText value="#{objeto.total}">
							<f:convertNumber currencyCode="ARS" type="currency" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_tipo}" />
						</f:facet>
						<h:outputText value="#{objeto.tipoFactura}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_numero}" />
						</f:facet>
						<h:outputText value="#{objeto.numero}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_fechaCreacion}" />
						</f:facet>
						<h:outputText value="#{objeto.fechaCreacion}">
							<f:convertDateTime pattern="#{msgs.common_inputDateFormat}"
								timeZone="#{msgs.common_timeZone}" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="#{msgs.admFacturacion_nombreArchivo}" />
						</f:facet>
						<h:outputText value="#{objeto.nombreArchivo}" />
					</p:column>

					<p:column style="width:40px">
						<f:facet name="header">
							<h:outputText value="#{msgs.common_opciones}" />
						</f:facet>
						<h:panelGrid columns="3">
							<p:commandLink actionListener="#{facturacionController.print}"
								update=":form">
								<h:graphicImage url="/resources/images/printRemito.png"
									title="Imprimir" style="border:0px" />
							</p:commandLink>
						</h:panelGrid>
					</p:column>

					<f:facet name="footer">
						<p:commandButton value="#{msgs.common_agregar}"
							actionListener="#{facturacionController.add}" update=":form" />
					</f:facet>
				</p:dataTable>

				<h:panelGrid id="panel" columns="1"
					rendered="#{facturacionController.addEdit}">
					<p:panel header="#{msgs.admFacturacion_altaModificacion}">
						<h:panelGrid columns="3">

							<h:outputText value="#{msgs.admFacturacion_archivo}" />
							<p:fileUpload
								fileUploadListener="#{facturacionController.handleFileUpload}"
								mode="advanced" sizeLimit="10000000000"
								allowTypes="/(\.|\/)(xls|XLS|xlsx|XSLX)$/" auto="true"
								label="Agregar archivo" update="panel form:messages"
								invalidFileMessage="Tipo de archivo invalido. El archivo debe ser XLS/XLSX."
								invalidSizeMessage="El tamaño del archivo es incorrecto. El tamaño máximo es 10000000000 bytes. " />
							<h:outputText value="#{facturacionController.archivo.fileName}"
								rendered="#{!(facturacionController.archivo eq null)}" />
							<h:outputText value=""
								rendered="#{facturacionController.archivo eq null}" />

							<h:outputText value="#{msgs.admFacturacion_imprimir}" />
							<p:selectBooleanCheckbox
								value="#{facturacionController.imprimirFacturas}" />
							<h:outputText value="" />

						</h:panelGrid>
					</p:panel>


					<!-- ================================================== -->
					<!-- Opciones											-->
					<!-- ================================================== -->
					<h:panelGrid columns="2">
						<p:commandButton value="#{msgs.common_guardar}"
							actionListener="#{facturacionController.saveFromFile}"
							update=":form" onclick="PF('progresWV').show();"
							oncomplete="PF('progresWV').hide(); PF('mensajeFacturasDG').show();">
						</p:commandButton>
						<p:commandButton value="#{msgs.common_volver}"
							actionListener="#{facturacionController.cancel}" immediate="true"
							update=":form">
						</p:commandButton>
					</h:panelGrid>
				</h:panelGrid>

				<p:dialog modal="true" widgetVar="mensajeFacturasDG"
					header="Mensaje" draggable="false" closable="false" width="350">

					<h:panelGrid columns="2">
						<h:outputText value="#{facturacionController.mensajeFacturas}" />
						<p:commandButton value="#{msgs.admFacturacion_imprimir}"
							rendered="#{facturacionController.imprimirFacturas}"
							actionListener="#{facturacionController.imprimirFacturas}"
							update=":form" 
							oncomplete="PF('mensajeFacturasDG').hide();">
						</p:commandButton>
						<p:commandButton value="#{msgs.common_cerrar}"
							rendered="#{!facturacionController.imprimirFacturas}"
							oncomplete="PF('mensajeFacturasDG').hide();">
						</p:commandButton>
					</h:panelGrid>

				</p:dialog>

			</h:form>


		</u:define>
	</u:composition>
</body>
</html>